from typing import List, TypedDict


class ParamsDict(TypedDict):
    brandName: str
    cateId: str
    tabIndex: str
    stationId: str
    brandId: str
    deliveryId: str
    searchType: str
    search: str


class SearchProduct(TypedDict):
    page: int
    count: int
    params: ParamsDict


class ImageItem(TypedDict):
    path: str  # 图片URL
    type: int  # 图片类型 1:主图 2:详情图


class ImageList(TypedDict):  # 图片列表模型
    imgList: List[ImageItem]


class ProductIntro(TypedDict):  # 商品详情模型
    content: str  # 商品详情信息


class ProductBasic(TypedDict):  # 商品基本信息模型
    cateId: str  # 分类ID
    cateName: str  # 分类名称
    typeId: str  # 类型ID
    name: str  # 产品名称
    code: str  # 产品编码
    spec: str  # 规格
    brandId: str  # 品牌ID
    unit: str  # 单位
    maker: str  # 制造商
    price: str  # 价格
    mktPrice: str  # 市场价格
    deliveryCycle: str  # 配送周期
    stockAmount: str  # 库存数量
    groupNum: str  # 组号
    insaleStatus: str  # 销售状态
    giftStatus: str  # 赠品状态
    deliveryId: str  # 配送ID
    img: str  # 主图图片URL


class ExtendIten(TypedDict):  # 附加属性
    extendId: str  # 附加属性 ID
    value: str  # 属性内容


class ExtendList(TypedDict):  # 附加属性列表
    extendList: List[ExtendIten]


class ProductSchema(TypedDict):  # 商品信息模型
    productBasic: ProductBasic  # 商品基本信息
    imgList: ImageList  # 图片列表
    productIntro: ProductIntro  # 商品介绍
    productCategoryList: list[str]  # 商品分类列表
    extendList: ExtendList  # 附加属性列表
